fix shadow play: only use ahead extension set per direction#21
Merged
Conversation
Shadow play was ANDing both left and right extension sets at
every position. The "behind" extension set (based on board tiles
already traversed) can be more restrictive than the GADDAG
allows, because the extension set doesn't account for rack tiles
placed during word generation. This made the shadow play upper
bound too tight, potentially missing valid moves.
Fix: shadow_play_right uses only left_extension_strip (ahead).
shadow_play_left uses only right_extension_strip (ahead).
Word generation already uses one extension set per direction.
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes a correctness bug introduced in #15 (extension sets).
Shadow play was ANDing both left and right extension sets at every position. The "behind" extension set can be more restrictive than the GADDAG allows (it doesn't account for rack tiles placed during word generation), making the upper bound too tight and potentially missing valid moves.
Fix: use only the "ahead" extension set per shadow direction — left_extension_strip for shadow_play_right, right_extension_strip for shadow_play_left. Matches what word generation already does.
Test plan